home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-20 | 131.9 KB | 3,193 lines |
-
-
- Network Working Group Joel Lilienkamp (SDC)
- Request for Comments: 929 Richard Mandell (SDC)
- Michael Padlipsky (Mitre Corp.)
- December 1984
-
- PROPOSED HOST-FRONT END PROTOCOL
-
-
- Status Of This Memo
-
- The reader should be aware of several things in regard to what the
- present document is up to. First and foremost, IT IS A PROPOSAL FOR
- A STANDARD, NOT A STANDARD ITSELF. Next, it assumes that the
- separate document, RFC 928, which is an introduction to the present
- document, has been read before it is. Next, it should be understood
- that "final cut" over this version of the document has been exercised
- by the author of RFC 928, not by the primary author of the present
- document, so any readers bothered by style considerations should feel
- free to blame the former, who's used to it, rather than the latter,
- who may well be guiltless. (Editing at a distance finally become too
- hard to manage, so if I'm typing it myself I'm going to fiddle with
- it myself too, including, but not limited to, sticking my own section
- on the Conceptual Model in before Joel's words start, rather than
- leaving it in the Introduction. MAP)
-
- Finally, it should be noted that this is not a finished document.
- That is, the intent is eventually to supply appendices for all of the
- protocol offloadings, describing their uses of protocol idiosyncratic
- parameters and even their interpretations of the standard per-command
- parameters, but in order to get what we've got into circulation we
- haven't waited until all such appendices have been written up. (We
- do have notes on how to handle FTP, e.g., and UDP will be pretty
- straightforward, but getting them ready would have delayed things
- into still another calendar year, which would have been very annoying
- ... not to say embarrassing.) For that matter, it's not even a
- finished document with respect to what is here. Not only is it our
- stated intention to revise the protocol based upon implementation
- experience gained from volunteer test implementations, but it's also
- the case that it hasn't proven feasible to iron out all known
- wrinkles in what is being presented. For example, the response codes
- almost certainly need clarification and expansion, and at least one
- of us doesn't think mandatory initial parameters need control flags.
- However, to try too hard for polish would be to stay in subcommittee
- for the better part of forever, so what you see is what we've got,
- but certainly isn't meant to be what you or we are stuck with.
-
- This RFC suggests a proposed protocol for the ARPA-Internet
- community, and requests discussion and suggestions for improvements.
- Distribution of this memo is unlimited.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 1]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Conceptual Model
-
- There are two fundamental motivations for doing outboard processing.
- One is to conserve the Hosts' resources (CPU cycles and memory) in a
- resource sharing intercomputer network, by offloading as much of the
- required networking software from the Hosts to Outboard Processing
- Environments (or "Network Front-Ends") as possible. The other is to
- facilitate procurement of implementations of the various
- intercomputer networking protocols for the several types of Host in
- play in a typical heterogeneous intercomputer network, by employing
- common implementations in the OPE. A third motivation, of basing a
- network security approach on trusted mandatory OPEs, will not be
- dealt with here, but is at least worthy of mention.
-
- Neither motivation should be allowed to detract from the underlying,
- assumed desire to perform true intercomputer networking, however.
- Therefore, it is further assumed that OPEs will be attached to Hosts
- via a flexible attachment strategy, as described in [1]. That is, at
- the software level an explicit Host-Front End Protocol (H-FP) will be
- employed between Hosts and OPEs, rather than having OPEs emulate
- devices or device controllers already "known" to Host operating
- systems (in order to avoid introducing new code into the Host).
-
- For reasons discussed in the Introduction, an H-FP resolves into
- three layers. The Link layer enables the exchange of bits between
- Host and OPE. The Channel layer enables the bit streams to be
- demultiplexed and flow controlled (both the Channel and Link layers
- may use preexisting per-Host mechanizations, it should be recalled).
- The Command (or "Service Access") layer is our primary concern at
- present. It serves as the distributed processing mechanism which
- allows processes on Hosts to manipulate protocol interpreters (PIs)
- in OPEs on their behalf; for convenience, it will be referred to as
- "the H-FP" here. (It should be noted that the Link and Channel
- layers may be viewed as roughly equivalent to the inboard processing
- investment for a Host-comm subnet processor PI and device driver, so
- in practical terms the savings of resources achieved by outboard
- processing come from making the H-FP "smaller" than the inboard
- implementations of the protocols it allows to be offloaded.)
-
- The crucial property of the H-FP conceptually is that it stands as
- the interface between a (Host) process and a PI (which is actually
- outboard). Usually, the model is that of a closed subroutine
- interface, although in some cases an interprocess communication
- mechanism model must be appealed to. That is, the interactions
- between cooperating H-FP PIs in some sense mimic subroutine or IPC
- calls, from the perspective of Host processes calling upon their own
- H-FP PIs, which in turn are of course interfacing via just such
-
-
- Lilienkamp & Mandell & Padlipsky [Page 2]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- mechanisms themselves. Another way of putting it is that "if the
- protocols were inboard," the processes invoking H-FP wouldn't know
- the difference. H-FP, then, may be viewed as a roundabout way of
- letting Host processes "get at" various PIs.
-
- Naturally, the mechanization of the desired concept cannot be
- particularly literal. After all, the Hosts and the OPEs are
- different processors, so we're not envisioning a passing through of
- parameters in an exact fashion. However, in broad terms the model is
- just that of a somewhat funny interface between a process and a PI.
- (This should not be construed as ruling out the occurrence of events
- which prompt the OPE to initiate an exchange of commands with the
- Host, though; see the Introduction for more on the topic of
- "Symmetric Begins.")
-
- Interaction Discipline
-
- The interaction between the Host and the OPE must be capable of
- providing a suitable interface between processes (or protocol
- interpreters) in the Host and the off-loaded protocol interpreters in
- the OPE. This interaction must not, however, burden the Host more
- heavily than would have resulted from supporting the protocols
- inboard, lest the advantage of using an OPE be overridden.
-
- Channel Level Interaction
-
- As stated elsewhere, the Channel level protocol (implicitly in
- conjunction with the Link level) provides two major functions. These
- are demultiplexing the traffic from the Link level into distinct data
- streams, and providing flow control between the Host and the OPE on a
- per stream basis. These hold even if the Host-OPE attachment is DMA.
-
- The data streams between the Host and the OPE are bidirectional. In
- this document, the basic unit of data transferred by the Channel
- level is referred to as a "chunk". The primary motivation for this
- terminology is that the H-FP permits the Channel level to be one of
- several possible protocols, each with its own terminology. For
- example, a chunk on an X.25 Channel would be a packet, while a chunk
- on the DTI H-FP channel would be a message. While the Command level
- is, in a sense, "more efficient" when the chunk size is permitted to
- be large, the flexibility permitted in the choice of protocols at the
- Channel level precludes any assumptions about the chunk size.
-
- Each data stream is fully asynchronous. A Channel protocol user can
- send data at any time, once the channel has been properly opened.
- (The Command level's logic may render some actions meaningless,
- however.) The data transfer service provided by the Channel protocol
-
-
- Lilienkamp & Mandell & Padlipsky [Page 3]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- is reliable; this entails delivery in the correct order, without
- duplication, and checked for bit errors. All retransmission, error
- checking, and duplicate detection is provided by this protocol in a
- way that is transparent to the user. (If the attachment is DMA,
- stream identification and chunk length must still be provided for.)
-
- The flow control at the Channel level is provided to prevent the OPE
- and the Host from overloading each other's resources by excessive
- transmissions. In general, this flow control should not directly
- affect the outboard protocol interpreters' operation. On the other
- had, this flow control has the same effect as explicit interface
- events that provide flow control between the user and the protocol
- interpreter (e.g., the Allocate event of the interface specification
- for TCP found in MIL-STD 1778). Hence, such events do not need to be
- communicated explicitly at the Command level. (If the attachment is
- DMA, flow control must still be provided for.)
-
- Should Hosts require an OPE to be attached via a Link Level that
- furnishes physical demultiplexing (e.g., a group of RS232 ports), any
- attempt to avoid furnishing reliability and explicit flow control, is
- done at their peril; we have not chosen to assist such an
- enterprise, but neither have we precluded it. (It would certainly
- violate the spirit of the thing, however.)
-
- Command Level Interaction
-
- The approach chosen for this H-FP is to base the interaction on a
- small set of commands, separately applicable to a given Channel Level
- channel. The commands are simple, but sufficiently flexible to permit
- the off-loading of the interpreters of the large number of protocols
- at various levels in the hierarchy. This flexibility is made
- possible in part by the similar nature of the interfaces to most
- protocols, combined with the provision of "protocol idiosyncratic
- parameters". These parameters are defined for each offloaded protocol
- interpreter in the OPE. The use of such parameters does not
- complicate the basic design of the OPE, since it must be customized
- for each off-loaded protocol anyway, and all that is required of the
- OPE for those parameters is to pass them to the off-loaded protocol
- interpreter. Hence, an interface tailored to a particular protocol
- can be created in a straightforward and cost-effective way.
-
- The command dialog is more or less asynchronous. Commands can be
- issued at any particular time (except when there is a pending
- command, which will be discussed below), and there is no need for
- dummy traffic on a channel when no commands are issued.
-
- Associated with each command is a response. The purpose of this
-
-
- Lilienkamp & Mandell & Padlipsky [Page 4]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- response is to indicate, at some level that depends in part on the
- particular protocol interpreter that is offloaded to the OPE, whether
- the command was successfully executed, and if unsuccessful, the
- reason. Often, generating the response involves interaction with the
- protocol interpreter before a response can be generated.
-
- When a command is issued, the issuer must wait for a response before
- another command is issued. The nature of the communication between
- the Host and the OPE is thus a lock step command/response dialog.
- There are two major exceptions to this principle, however. One
- exception is the abrupt form of the End command, which can be issued
- at any time to cancel any previously issued commands, and indicate
- that services are no longer desired. The other exception is the
- Signal command. Since a Signal is out-of-band and usually of high
- importance, forcing it to wait on a response would be undesirable.
- Hence, a Signal command can be issued while commands (other than
- Signal) are pending. However, a Signal command should not be issued
- before a successful response to the Begin command has been received.
- Since it is possible for more than one command of different types to
- be pending at one time, a mechanism to distinguish responses is
- needed. Since there are never two commands of the same type pending,
- including the command name in the response is sufficient to make this
- distinction.
-
- A special case command is the Transmit command. Details of the
- Transmit command are provided in the next section. Essentially, the
- Transmit command is used to invoke the data transfer services of the
- off-loaded protocol (when issued by the Host) or to indicate the
- arrival of new data from the network (when issued by the OPE). The
- nature of specific protocol interfaces for these events varies widely
- between protocols. Some may block until the data is accepted by the
- remote counterpart (or "peer") protocol interpreter, while others may
- not. Hence, there is a special parameter which indicates the nature
- of the Transmit command interface. It can either require that the
- response should be generated immediately after determining the
- Transmit command is complete and formed properly, or can indicate
- that the response should not be generated until the appropriate
- interface event is given by the remote protocol interpreter. The
- default action for all Transmit commands can be initialized using the
- Begin command and changed using the Condition command. Also, the
- default action can be temporarily overridden by specifying a
- parameter with the Transmit command. The net result of this mechanism
- is to allow the Host to determine within reason just how lock-stepped
- transmissions are to be. (It is assumed that the usual case will be
- to transfer the burden of buffering to the OPE by taking immediate
- responses, provided that doing so "makes sense" with the particular
- offloaded protocol in play.)
-
-
- Lilienkamp & Mandell & Padlipsky [Page 5]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Some protocols provide a block-oriented data transfer service rather
- than a stream-oriented one. With such a service, the data associated
- with a transfer request is viewed as an integral unit. For actual
- network transmission, the protocol may permit these units to be
- grouped or fragmented. However, the receiving end must deliver the
- data in the original, integral units. Protocols that conform to this
- model include some datagram protocols such as IP and UDP, and also
- some connection protocols such as NBS TP.
-
- To cater to these types of protocols, it is a convention that
- commands, their parameters, and any associated data be transferred
- between the Host and the OPE in a single chunk. Any data associated
- with an H-FP command is viewed as an integral unit which is used in
- the corresponding service request given to the outboard protocol
- interpreter or delivered as a complete unit to the process in the
- Host. Operation of stream-oriented protocols such as TCP will not be
- adversely affected by this convention.
-
- To accommodate Channel protocols that do not provide for arbitrarily
- large chunks, a mechanism at the Command level is required to permit
- the linking of multiple chunks into a single command, in order to
- transfer the burden of buffering as much as possible from the Host to
- the OPE. The facility proposed here would consist of an indication
- at the beginning of each chunk which would distinguish integral
- commands, fragments of a command for which more fragments are yet to
- arrive, and the final fragment of a command. The details of this
- mechanism are discussed in the section on the syntax of commands and
- responses.
-
- It is a convention for this H-FP that any data associated with a
- command must start on a word boundary (as defined by the local
- system). Consequently, there is a need to provide padding within the
- commands. Such padding is used only to fill to the next appropriate
- boundary, and has no semantic significance to the command interpreter
- (i.e., two commands that are identical except for the amount of
- padding should behave identically). The details of this padding are
- discussed in the section on the syntax of commands and responses.
-
-
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 6]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Syntax Rules
-
- At the Command Level, communication between the Host and the OPE
- takes the form of commands and responses. A command is a request for
- some particular action, and the response indicates the success or
- failure of performing the requested action.
-
- All commands and responses are coded in ASCII characters. (Nothing
- precludes OPEs from accepting EBCDIC from Hosts that use it in native
- mode, but that is not required.) These characters are sent in some
- way convenient for the Host, and the OPE is sufficiently flexible to
- interpret them. (i.e., OPEs are expected to accommodate Host
- idiosyncracies in regard to such things as use of 7-bit ASCII in a
- 9-bit field.) This approach offers several advantages:
-
- Adaptabilities in most Hosts: Most Hosts have the ability to
- generate and interpret ASCII character streams. Hence, integrating
- H-FP into a Host will not require difficult software.
-
- Script generation: Generation of test and operational command
- scripts will be simplified, since they will not need to contain
- special characters.
-
- Terminal Operation: Using simple command streams simplifies the
- conversion of an OPE to a generic virtual terminal support machine.
- This is particularly useful during development and testing.
-
- Testing: Testing will not require special hardware to interpret
- commands and responses. A terminal or data line analyzer would be
- adequate.
-
- The specific format for the commands and responses will be discussed
- in the sections that follow. In those sections, the quote character
- is used to indicate strings. The symbols "<" and ">" (referred to as
- angle brackets) are used as meta-characters.
-
- Syntax of Commands
-
- As alluded to in the section discussing the interaction discipline
- between the Host and the OPE, a function is provided by which a chunk
- can be used to carry either a complete command or a fragment of a
- command. The mechanism chosen to provide this function entails use
- of the first character position in the chunk as a chunk usage
- identifier. The character "C" in the first position indicates a
- chunk containing a single, complete command. "F" in the first
- position indicates a chunk which is the first part of a multichunk
- command. "M" in the first position indicates the chunk is a middle
-
-
- Lilienkamp & Mandell & Padlipsky [Page 7]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- part (neither the first nor the last chunk) of a command. Finally,
- "L" indicates the chunk is the last chunk of a multi-chunk command.
- Hence, the following sequences of chunks (the letter corresponds to
- the chunk usage identifier in each chunk, and the angle brackets
- enclose a chunk) are legal:
-
- <C>
- <F><L>
- <F><M><M><L>
-
- while the following are not legal:
-
- <L>
- <M><L>
- <F><C>
-
- Tactics for handling multiple chunks with regard to OPE buffering
- limits are left to the ingenuity of OPE builders. The spirit is to
- take as much as you can, in order to relieve the Host of the
- necessity of buffering itself.
-
- A command always begins immediately following the indicator
- character, with possible intervening spaces. This implies a chunk
- can contain at most one complete command. The end of the command
- (not including the data) is signified by a newline (denoted as <nl>
- in this document) that does not appear inside a quoted string (see
- below). The end of the data is designated by the end of the last
- chunk.
-
- Commands take the form of an ASCII string. The command identifier is
- the first word of the chunk. It consists of at least the first two
- letters of the command, in either upper or lower case (e.g., the
- sequences "BE", "Be", "bE", and "be" all identify the Begin command).
- Additional letters of the command name can be included if desired to
- aid readability of the command stream.
-
- Following the command identifier is a list of parameters. These
- parameters are also represented as ASCII strings, although the
- specific format will depend on the particular parameter. The data to
- be transmitted is not considered a control parameter, however, and
- need not be ASCII data.
-
- Parameters are separated by one or more spaces. Tabs, newlines, and
- other white space are not legal parameter separators.
-
- Parameter strings may be quoted, using the character <">. Any
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 8]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- characters between the <"> characters are a part of the parameter,
- including spaces and newlines. The character <"> that is part of the
- parameter is represented inside a quoted string as <"">.
-
- The order in which the parameters appear within the command is
- significant to their interpretation by the Host and by the OPE.
- Optional parameters may be skipped by using the characters ",," to
- indicate a NULL parameter. Such a NULL parameter takes its default
- value. Alternatively, each parameter has a MULTICS/UNIX style
- Control Argument/Flag associated with it that can be used to identify
- the parameter, without placing NULL parameters for each parameter
- skipped. This flag consists of one or two ASCII characters, and
- either upper or lower case may be used. For example, if the fourth
- parameter of a command had a flag of "-p" and the user wished the
- first three parameters to be null, he could use:
-
- command -p value
-
- or
-
- command -P value
-
- instead of
-
- command ,, ,, ,, value
-
- if it were more convenient for the Host to do so. Flagged parameters
- must still appear in the correct sequence within the command,
- however.
-
- There may be data associated with some of the commands. Any such
- data is placed into the chunk following all the parameters and the
- unquoted newline. Padding can be provided by placing spaces between
- the end of the final parameter string and the newline, so that data
- begins on a word boundary. The OPE will always pad to a host word
- boundary. Padding by hosts is optional.
-
- Syntax of Responses
-
- Responses are actually just a special form of a command. It is
- anticipated that all responses would fit into a single channel chunk,
- although the mechanisms described for multichunk commands can
- certainly be used in responses. The ASCII string used to uniquely
- identify the response command is "RE" ("Re", "rE", and "re" are also
- permitted).
-
- After the response command identifier is the original command
-
-
- Lilienkamp & Mandell & Padlipsky [Page 9]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- identifier, so the response can be associated with the proper
- command. Following this identifier is a three ASCII digit response
- code, a set of protocol idiosyncratic parameters, and a textual
- message. The protocol idiosyncratic parameters are used to transfer
- interface information between the Host and the OPE, and may not be
- needed when off-loading some protocol interpreters. The textual
- message is intended for human interpretation of the response codes,
- and is not required by the protocol. The three digits uniquely
- identify the semantics of the response, at least within the context
- of a particular command and particular outboarded protocol
- interpreter.
-
- Responses are numerically grouped by the type of information they
- convey. The first digit identifies this group, and the last two
- digits further qualify the reply. The following list illustrates
- this grouping.
-
- 0XX Successful: The command was executed successfully. The
- response code may contain further information.
-
- 1XX Conditional Success: The command was executed successfully,
- but not exactly according to the service and flow control
- suggestions. If those suggestions were particularly important
- to the requester, he may wish to issue an End command. The
- response code contains information on what suggestion or
- suggestions could not be followed.
-
- 2XX Command Level Error: An error at the command level has
- occurred. This could include requesting services of a
- protocol not supported, or a problem in the way those services
- were requested. This level does not include problems with the
- syntax of the command or its parameters.
-
- 3XX Syntax and Parameter Errors: An error in the syntax of the
- command or a problem with one of its parameters has occurred.
- A problem with a parameter may be other than syntactical, such
- as illegal address.
-
- 4XX Off-loaded Protocol Interpreter Problems: Some problem with
- the particular off-loaded protocol has occurred.
-
- 5XX Local OPE Internal Problems: Problems, such as insufficient
- OPE resources, or problems with OPE to subnet interface.
-
- 6XX Security Problem: Some problem with Host, network, or OPE
- security has occurred. The response code indicates the
- problem.
-
-
- Lilienkamp & Mandell & Padlipsky [Page 10]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 7XX Reserved for Future Expansion
-
- 8XX Reserved for Future Expansion
-
- 9XX Protocol Idiosyncratic Errors: Some error occurred that is
- idiosyncratic to the particular off-loaded protocol being
- used. The response code indicates the error.
-
- Description of the Commands
-
- As stated above, communication between the Host and the OPE at the
- Command Level is accomplished using commands and responses. Commands
- may be issued by either the Host or the OPE, and are used to
- stimulate activity in the other entity. Some commands may only have a
- meaningful interpretation in one direction, however. A response
- indicates that the activity started by the command was completed, and
- a code indicates success or failure of the command, and perhaps other
- information related to the command as well.
-
- Associated with each command is a set of parameters. The order in
- which the parameters appear is significant to the correct operation
- of the protocols. More information on the syntax of command
- parameters can be found in the syntax descriptions.
-
- The commands are:
-
- - Begin: initiate communication between a process in the Host and
- an off-loaded protocol interpreter in the OPE. (A Channel level
- stream/connection will typically have been opened as a prior step.
- All other commands, except No-op, apply to a stream on which a
- successful Begin has been done.)
-
- - Transmit: transmit data between a process in the Host and an
- off-loaded protocol interpreter in the OPE.
-
- - Signal: cause an out-of-band signal to be sent by the
- off-loaded protocol interpreter to its peer, or indicate the
- arrival of such a signal from the remote side.
-
- - Condition: alter the off-loaded protocol interpreter's
- operational characteristics.
-
- - Status: transfer status requests or information between a
- process in the Host and an off-loaded protocol interpreter in the
- OPE.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 11]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- - End: indicate that services from the off-loaded protocol
- interpreter are no longer required, or will no longer be provided.
-
- - No-op: performs no operation, but facilitates testing.
-
- These commands will be discussed in the following sections. Each of
- these sections includes a discussion of the purpose of the command, a
- description of each of the parameters used with the command, a list
- of responses for the command, an example of the command, and a set of
- notes for the implementor. (An appendix will eventually be furnished
- for each protocol offloading, showing the use of its protocol
- idiosyncratic parameters as well as of the general parameters on a
- per-command basis. Initially, only representative offloadings will
- be treated in appendices, with others to be added after the protocol
- gains acceptance.)
-
- Begin
-
- Purpose of the Begin Command
-
- The purpose of a Begin command is to initiate communication
- between the Host and the OPE on a particular stream or channel
- (the channel is opened as a separate step, of course). The
- interpretation of the command is somewhat dependent upon
- whether it was issued by the Host of the OPE.
-
- - If the command was issued by the Host, it means some process
- in the Host is requesting services of a protocol that was
- off-loaded to the OPE. The user request results in the
- establishment of a channel connection between the Host and the
- OPE, and a Begin command to the Command interpreter in the OPE.
-
- - If the command was issued by the OPE, it means some protocol
- interpreter in the OPE has data for some process in the Host
- which is not currently known by the OPE. An example would be
- an incoming UDP datagram on a new port, or if no Begin for UDP
- had been issued at all by the Host. (An incoming TCP
- connection request could be handled by a response to the user's
- Passive Open request, which had previously caused a Begin
- request from the Host; an incoming TCP connection request to a
- port on which no Listen had been issued would cause an OPE
- generated Begin, however.)
-
- As indicated earlier, any particular Host is not required to
- support two-way Begins.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 12]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Parameters of the Begin Command
-
- The Begin command has several parameters associated with it.
- These parameters contain information needed by the offloaded
- protocol to provide an adequate level of network service. This
- information includes protocol, source and destination
- addresses, and also type of service and flow control advice.
- These parameters are discussed in detail below.
-
- Protocol
-
- The protocol parameter identifies that off-loaded protocol in
- the OPE to which Begin is directed, or which issued the Begin
- to the Host. For example, if the user wished to utilize TCP
- services, and the TCP software was off-loaded into the OPE,
- then the Protocol parameter for the Begin command would be TCP.
-
- There are two categories of protocol parameters -- generic and
- specific. A generic parameter identifies a type of protocol
- service required, but does not identify the actual protocol.
- Use of generic protocols allows a Host process to obtain
- network services without specific knowledge of what protocol is
- being used; this could be appropriate for use in situations
- where no specific aspect(s) of a specific protocol is/are
- required. For example, the user may select a generic
- Host-to-Host connection protocol, and (at some point in the
- future) may actually receive services from either TCP or the
- NBS Transport Protocol, depending on the network (or even the
- foreign Host) in question. A specific protocol parameter
- identifies some particular protocol, e.g., TCP, whose use is
- required for the given channel.
-
- The valid entries for the protocol field include:
-
- Generic Specific Comment
-
- GIP IP Datagram Internetwork Protocol
- HHP TCP Connection Transport/Host-Host Protocol
- GDP UDP Datagram Transport/Host-Host Protocol
- VTP TEL Virtual Terminal (Telnet) Protocol
- GFP FTP File Transfer Protocol
- MAIL SMTP Mail Transfer Protocol
- PROX PROX Proximate Net Interface Protocol
-
- (Note that the final line is meant to allow for a process in an
- OPE'd Host's getting at the PI of the Network Interface
- Protocol for whatever the proximate network is. Of course, so
-
-
- Lilienkamp & Mandell & Padlipsky [Page 13]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- doing only makes sense in specialized contexts. We conceive of
- the desirability of "pumping bits at a peripheral" on a LAN,
- though, and don't want to preclude it, even if it would be
- impossible on many LAN's to deal with the problem of
- distinguishing traffic coming back on the LAN in this "raw"
- mode from normal, IP traffic. Indeed, in some contexts it is
- likely that administrative considerations would preclude
- avoidance of IP even if technical considerations allowed it,
- but it's still the case that "the protocol" should provide a
- hook for going directly to the L I protocol in play.)
-
- There is no default value for this parameter. If it is not
- present, the Begin command is in error. The control flag for
- this parameter is -pr.
-
- Active/Passive
-
- The Active/Passive parameter indicates whether the issuer of
- the Begin command desires to be the Active or Passive user of
- the protocol. This parameter is particularly relevant to
- connection-oriented protocols such as TCP, where the user may
- actively pursue connection establishment, or else may passively
- wait for the remote entity to actively establish the
- connection; it also allows some process to establish itself as
- the Host "fielder" of incoming traffic for a connectionless
- protocol such as IP.
-
- Active is requested using the single character "A". Passive is
- indicated using the character "P". The default value of this
- parameter is "A". Also, when the OPE issues the Begin command,
- the value must be "A". The control flag for this parameter is
- -ap.
-
- Foreign Address Primary Component
-
- The addressing structure supported by H-FP is two level. Each
- address has two components, the primary and the secondary. The
- exact interpretation of these two components is protocol
- specific, but some generalities do apply. The primary
- component of the address identifies where the protocol is to
- deliver the information. The secondary component identifies
- which recipient at that location is to receive the information.
- For example, the TCP primary address component is the Host's
- Internet Address, while the secondary address component is the
- TCP port. Similarly, IP's primary address component is the
- Host's Internet Address, and the secondary address component is
- the IP ULP field. Some protocols provide only a single level
-
-
- Lilienkamp & Mandell & Padlipsky [Page 14]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- of addressing, or the secondary level can be deduced from some
- other information (e.g., Telnet). In these cases, only the
- primary component is used. To cater to such cases, the
- secondary component parameter comes later in the parameter
- list.
-
- The Foreign Address Primary Component parameter contains the
- primary component of the destination address. It may be in
- either a numeric or symbolic form. (Note that this allows for
- the OPE to exercise a Name Server type of protocol if
- appropriate, as well as freeing the Host from the necessity of
- maintaining an in-board name to address table.) The default
- value for this parameter, although it only makes sense for
- Passive Begins, is "Any Host". The control flag for this
- parameter is -fp.
-
- Mediation Level
-
- The mediation level parameter is an indication of the role the
- Host wishes the OPE to play in the operation of the protocol.
- The extreme ranges of this mediation would be the case where
- the Host wished to remain completely uninvolved, and the case
- where the Host wished to make every possible decision. The
- specific interpretation of this parameter is dependent upon the
- particular off-loaded protocol.
-
- The concept of mediation level can best be clarified by means
- of example. A full inboard implementation of the Telnet
- protocol places several responsibilities on the Host. These
- responsibilities include negotiation and provision of protocol
- options, translation between local and network character codes
- and formats, and monitoring the well-known socket for incoming
- connection requests. The mediation level indicates whether
- these responsibilities are assigned to the Host or to the OPE
- when the Telnet implementation is outboard. If no OPE
- mediation is selected, the Host is involved with all
- negotiation of the Telnet options, and all format conversions.
- With full OPE mediation, all option negotiation and all format
- conversions are performed by the OPE. An intermediate level of
- mediation might have ordinary option negotiation, format
- conversion, and socket monitoring done in the OPE, while
- options not known to the OPE are handled by the Host.
-
- The parameter is represented with a single ASCII digit. The
- value 9 represents full OPE mediation, and the value 0
- represents no OPE mediation. Other values may be defined for
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 15]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- some protocols (e.g., the intermediate mediation level
- discussed above for Telnet). The default value for this
- parameter is 9. The control flag for this parameter is -m.
-
- Transmit Response Discipline
-
- The Transmit Response Discipline parameter is used to set the
- desired action on the OPE's part for generating responses to
- Transmit commands. Essentially the parameter determines when
- the OPE's response to the transmit command occurs (i.e.,
- immediately or delayed).
-
- The Transmit Response Discipline value is represented by a
- single ASCII character. The character "N" is used for
- nonblocking Transmit commands, which implies that responses for
- Transmit commands should be generated as soon as the command
- has been examined for correctness (i.e., that the syntax is
- good and the parameters appear reasonable). In other words,
- the outboard protocol interpreter has the data in its queue,
- but hasn't necessarily transmitted it to the net. The
- character "B" is used for blocking Transmit commands, which
- requests that the response not be generated until the protocol
- interpreter has successfully transmitted the data (unless, of
- course, the Transmit command was badly formed). The default
- value for this parameter is "N", or a nonblocking Transmit
- command. The control flag for this parameter is -tr.
- (Depending on the protocol in play, "successfully transmitted"
- might well imply that an acknowledgment of some sort has been
- received from the foreign Host, but for other protocols it
- might only mean that the given collection of bits has been
- passed from the OPE to the proximate net.)
-
- Foreign Address Secondary Component
-
- The addressing mechanisms supported by this level of H-FP are
- discussed above. The Foreign Address Secondary Component
- parameter contains the value of the destination address's
- secondary component. Some protocols do not require this
- parameter, or can obtain it from other information. Therefore,
- the default value for this parameter is NULL. A NULL secondary
- component might be an error for some protocols, however. The
- secondary component can be expressed either numerically or
- symbolically. The control flag for this parameter is -fs.
- (Note that it is intended to be "legal" to specify a Secondary
- Component other than the Well-Known Socket for the protocol in
- play; in such cases, the result should be that the virtualizing
- of the given protocol be applied to the stream, in the
-
-
- Lilienkamp & Mandell & Padlipsky [Page 16]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- expectation that that's what the other side is expecting. This
- is to cater to, for example, a Terminal-Terminal protocol that
- merely "does Telnet" to a socket other than the usual Logger.)
-
- Local Address Secondary Component
-
- The Local Address Secondary Component parameter contains the
- value of the local address's secondary component. (The primary
- component is assumed to be the default for the Host, but can be
- altered as well; see below.) Some protocols do not require this
- parameter, or can obtain it from other information. In some
- cases, the OPE may already know the value for this parameter
- and therefore not require it. The default value of this
- parameter is NULL. The local address secondary component can
- be expressed either numerically or symbolically. The control
- flag for this parameter is -ls.
-
- Begin Timeout Interval
-
- After a Begin command is issued, a timer can be started. If
- the activity requested cannot be performed within some timed
- interval, then the Begin command may expire. An expired Begin
- command returns a response code indicating a Begin timeout
- occurred. The Begin Timeout Interval parameter contains the
- length of time the timer will run before the Begin timeout
- occurs.
-
- The parameter is represented as a string of ASCII digits
- indicating the time interval in seconds. The default value of
- this parameter is infinity (i.e., the Begin command will never
- timeout). The control flag for this parameter is -bt.
-
- Type of Service Advice
-
- The Type of Service Advice parameter contains information on
- the service characteristics the user desires from the offloaded
- protocol. Included in this parameter is the precedence of the
- data transfer, and also indication of whether high throughput,
- fast response time, or low error rate is the primary goal.
-
- The format of this parameter is a letter immediately (i.e. no
- intervening spaces) followed by a digit. The letter "T"
- indicates that high throughput is desired. The letter "R"
- indicates minimal response time is the goal. The letter "E"
- indicates that low error rates are the goal. The letter "N"
- indicates there are no special service requirements to be
- conveyed. The digit immediately following the character
-
-
- Lilienkamp & Mandell & Padlipsky [Page 17]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- indicates the desired precedence level, with zero being the
- lowest, and nine being the highest. The specific
- interpretation of this parameter is dependent on what service
- options are provided by the protocol. The default value of
- this parameter is the lowest precedence (ROUTINE), and no
- special service requests. The control flag for this parameter
- is -ts.
-
- Flow Control Advice
-
- The Flow Control Advice parameter contains information on the
- flow characteristics desired by the user. Some applications
- such as file transfer operate more efficiently if the data is
- transferred in large pieces, while other, more interactive
- applications are more efficiently served if smaller pieces are
- used. This parameter then indicates whether large or small
- data blocks should be used. It is only relevant in stream or
- connection-oriented protocols, where the user sends more than a
- single piece of data.
-
- This parameter is represented by a single ASCII digit. A value
- 0 means the data should be sent in relatively small blocks
- (e.g., character or line oriented applications), while a value
- 9 means the data should be sent in relatively large blocks
- (e.g., block or file oriented applications). Other values
- represent sizes between those extremes. The character "N"
- indicates that no special flow control advice is provided. The
- actual interpretation of this parameter is dependent on the
- particular protocol in the OPE. The default value of this
- parameter is no flow control advice. In this case, the protocol
- in the OPE will operate based only on information available in
- the OPE. The control flag for this parameter is -fc.
-
- Local Address Primary Component
-
- This parameter contains the local address primary component. It
- is anticipated that under most circumstances, this component is
- known to both the Host and the OPE. Consequently, this
- parameter is seldom required. It would be useful if the Host
- desired to select one of several valid addresses, however. The
- control flag for this parameter is -lp.
-
- Security
-
- The security parameters contain a set of security level,
- compartment, community of interest, and handling restriction
- information. Currently, security is provided by performing all
-
-
- Lilienkamp & Mandell & Padlipsky [Page 18]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- processing at system high level or at a single level.
- Consequently, these parameters are probably redundant, since
- the security information is known. In the future, however,
- these parameters may be required. Therefore a field is
- provided. The control flag for this parameter is -s.
-
- Protcol Idiosyncratic Parameters
-
- The remaining parameters are protocol idiosyncratic. That is,
- each protocol that is off-loaded may have a set of these
- parameters, which are documented with a description of the
- off-loaded protocol. The default value for these parameters is
- NULL, unless otherwise specified by a particular offloaded
- protocol. The control flag for this set of parameters is -pi,
- which identifies the first protocol idiosyncratic parameters.
- Control flags for other protocol idiosyncratic parameters must
- be defined for each off-loaded protocol.
-
- Data
-
- After the Protocol Idiosyncratic Parameters, if any, and the
- required <nl>, if the protocol in play allows for it at this
- juncture the rest of the chunk will be interpreted as data to
- be transmitted. That is, in connection oriented protocols data
- may or may not be permitted at connection initiation time, but
- in connectionless protocols it certainly makes sense to allow
- the H-FP Begin command to convey data. (This will also be
- useful when we get to the Condition command.)
-
- Responses
-
- The following responses have been identified for the Begin
- command:
-
- 000 Command completed successfully
- 101 Throughput not available; using maximum
- 102 Reliability not available; using maximum
- 103 Delay not available; using minimum
- 110 Flow Control advice not followed; smaller blocks used
- 111 Flow Control advice not followed; larger blocks used
- 201 Failed; Begin not implemented in this direction
- 202 Failed; timeout
- 203 Failed; Begin command on already active channel
- 300 Problem with multiple chunks
- 301 Syntax problem with Begin command
- 302 Protocol not supported in OPE/Host
- 303 Active service not available
-
-
- Lilienkamp & Mandell & Padlipsky [Page 19]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 304 Passive service not available
- 305 Invalid Foreign Address Primary Component
- 306 Invalid Transmit Discipline
- 307 Invalid Foreign Address Secondary Component
- 308 Invalid Local Address Secondary Component
- 309 Invalid Timeout Interval
- 310 Invalid Type of Service Advice
- 311 Invalid Flow control Advice
- 312 Invalid Local Address Primary Component
- 401 Protocol Interpreter in OPE not responding
- 402 Remote Protocol Interpreter not available
- 403 Failed; insufficient protocol interpreter resources
- 501 Failed; insufficient OPE resources
- 601 Request violates security policy
- 602 Security parameter problem
-
- Additionally, protocol idiosyncratic responses will be defined
- for each off-loaded protocol.
-
- Example of Begin Command
-
- The Begin command is the most complex of the H-FP Command
- Level. When the off-loaded protocol is TCP, the Begin command
- is used to open TCP connections. One possible example of a
- Begin command issued by an inboard Telnet interpreter to open a
- TCP connection to ISIA, with no begin timeout interval, is:
-
- C BE TCP A ISIA 9 N 23 ,, ,, N0 S <nl>
-
- Where:
-
- TCP The code for the protocol TCP
- A Indicates Active Begin
- ISIA The name of a Host at USC-ISI
- 9 Mediation Level 9: Full OPE mediation
- N Non-blocking transmit
- 23 Destination Telnet Port
- ,, skip over parameters (Local Address Secondary,
- Begin Timeout Interval)
- N0 Type of Service Advice: No special Advice,
- Normal Precedence
- S Flow Control Advice: use small blocks
-
- This command will cause the OPE to invoke the TCP interpreter
- to generate the initial SYN packet to the well-known Telnet
- socket on Host ISIA. It also informs the OPE to do all TCP
- related processing via the Mediation Level, accepts default
-
-
- Lilienkamp & Mandell & Padlipsky [Page 20]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Local Address parameters, and sets the Begin Timeout Interval
- to infinity. The precedence of the TCP connection is Normal,
- and the TCP interpreter is informed that the data stream will
- consist of primarily small blocks.
-
- Notes to the Implementor
-
- Response 203 might seem silly to some readers, but it's there
- in case somebody goofed in using the Channel Layer.
-
- Transmit
-
- Purpose of the Transmit Command
-
- The purpose of the Transmit command is to permit the process in
- the Host to send data using an off-loaded protocol interpreter
- in the OPE, and also to permit the OPE to deliver data received
- from the network destined for the process in the Host. The
- Transmit command is particularly relevant to connection and
- stream type protocols, although it has applications for
- connectionless protocols as well. After the Begin command is
- issued successfully and the proper Response received, Transmit
- commands can be issued on the given channel. The semantics of
- the Transmit command depend on whether it was issued by the
- Host or the OPE.
-
- - If the Host issues the Transmit command, a process in the
- Host wishes to send the data to the destination specified to
- the off-loaded protocol interpreter that was established
- (typically) by a previous Begin command on the given H-FP
- channel.
-
- - If the OPE issues the command, the OPE has received data
- destined for a process in the Host from a connection or stream
- supported by the off-loaded protocol that was established by a
- previous Begin command on the given H-FP channel.
-
- Parameters of the Transmit Command
-
- The Transmit command has one parameter associated with it. It
- is an optional parameter, to temporarily override the response
- discipline for this particular transmit command. Some protocols
- may have protocol-idiosyncratic parameters as well. The
- transmit command also has data associated with it. All
- parameters must precede the data to be transmitted.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 21]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Response Discipline Override
-
- The Response Discipline Override parameter indicates the
- desired response discipline for that individual Transmit
- Command, overriding the default response discipline. A single
- ASCII character is used to indicate the desired discipline.
- The character "N" indicates that this Transmit command should
- not block, and should return a response as soon as the data is
- given to the protocol interpreter in the OPE. The character "B"
- indicates that this Transmit command should block, meaning that
- a response should not be generated until the data has been sent
- to the destination. The default value of this parameter is the
- currently defined Transmit Command response discipline. The
- use of this parameter does not alter the currently defined
- Transmit command response discipline; the default is changed
- with the Condition command. The control flag for this
- parameter is -rd.
-
- Protocol-Idiosyncratic Parameters
-
- Any other parameters to the Transmit command are
- protocol-idiosyncratic. That is, each protocol that is
- off-loaded has a set of these parameters, which are documented
- with a description of the off-loaded protocol. The default
- value for these parameters is NULL, unless otherwise specified
- by a particular off-loaded protocol. The control flag for this
- set of parameters is -pi, which identifies the first
- protocol-idiosyncratic parameters. Control flags for other
- protocol-idiosyncratic parameters must be defined for each
- off-loaded protocol.
-
- Responses
-
- The following responses for the Transmit command have been
- identified:
-
- 000 Transmit Command completed successfully
- 201 Transmit Command not appropriate
- 300 Problem with multiple chunks
- 301 Syntax problem with Transmit Command
- 302 Invalid Transmit Command Response Discipline
- 401 Protocol Interpreter in OPE not responding
- 402 Failure in remote protocol interpreter
- 403 Failed; insufficient protocol interpreter resources
- 501 Failed; insufficient OPE resources
- 601 Request violates security policy
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 22]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Additionally, protocol-idiosyncratic responses will be defined
- for each off-loaded protocol.
-
- Example of Transmit Command
-
- The transmit command is used in TCP to provide the TCP write
- call. An example of such a transmit command would be:
-
- C TR N <nl> <DATA>
-
- Where N indicates non-blocking transmission discipline, <nl> is
- the required command-ending newline, and <DATA> is presumed to
- be the user's data that is to be transmitted.
-
- Notes to the Implementor
-
- If you get a 403 or a 501 response and have sent a multiple
- chunk it probably makes sense to try a single chunk; if you've
- sent a single chunk, it makes sense to wait a while and try
- again a few times before giving up on the stream/channel.
-
- Condition
-
- Purpose of the Condition Command
-
- The primary purpose of the Condition command is to permit a
- process to alter the characteristics that were originally set
- up with the Begin command. (That is, "condition" is a verb.)
- These characteristics include the addresses, the mediation
- level, the type of service, and the flow control parameters
- from Begin. They may also include protocol-idiosyncratic
- characteristics. (Although Condition is usually thought of as a
- Host->OPE command, it may also be used OPE->Host in some
- contexts.)
-
- Condition is a generic command that may find little use in some
- off-loaded protocols. In others, only some of the parameters
- identified may make sense. For example, changing the
- destination address of a TCP connection involves closing one
- connection and opening another. Consequently, in may make more
- sense to first issue an End command, and then a Begin with the
- new address. In other protocols, such as IP or UDP, changing
- the address on each datagram would be a perfectly reasonable
- thing to do.
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 23]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Parameters of the Condition Command
-
- The Condition command has the same parameters as the Begin
- command. Any parameters expressed in a Condition command
- indicate the new values of the characteristics to be altered;
- all parameters not expressed retain the current value.
-
- Although it is possible to express the change of any of the
- characteristics originally set up in the Begin command using
- the Condition command, there are some characteristics that do
- not make sense to alter, at least for some protocols. For
- example, once a connection is opened, it does not make much
- sense to change the Foreign Address Primary or Secondary
- Components. Doing so is inconsistent with current versions of
- TCP, and would require the closing of the existing connection
- and opening a new one to another address. Earlier versions of
- TCP did permit connections to be moved. If a protocol that
- provided such a feature was implemented in the OPE, the
- changing the Secondary Address Components would be a reasonable
- thing to do.
-
- Responses
-
- The responses to the Condition command are the same as those to
- the Begin command.
-
- Example of Condition Command
-
- The Condition Command can be quite complex, and can be used for
- many purposes. One conceived use of the condition command
- would be to change the type of service advice associated with
- the channel. An example of this (which also demonstrates the
- ability to skip parameters) is:
-
- C -ts T <nl>
-
- which causes the offloaded PI associated with the current
- channel to attempt to achieve high throughput (in its use of
- the comm subnet(s) in play).
-
- Notes to the Implementor
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 24]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Signal
-
- Purpose of Signal Command
-
- The purpose of the Signal Command (implicitly at least) is to
- permit the transfer of out-of-band signals or information
- between the Host and the OPE, in order to utilize (explicitly)
- out-of-band signaling services of the off-loaded protocol. The
- semantics of the Signal command depend upon whether it was
- issued by the Host or the OPE.
-
- - If the Signal command was issued by the Host, it means a
- process in the Host desires to send out-of-band data or an
- out-of-band signal.
-
- - If the Signal command was issued by the OPE, it means
- out-of-band data or an out-of-band signal arrived for the
- process associated with the channel in the Host.
-
- Parameters of the Signal Command
-
- The basic usage of the Signal command is with no parameters,
- which sends or reports the receipt of an out-of-band signal.
- Some protocols, such as the NBS Transport Protocol, permit the
- user to send data with the out-of-band signal. Hence, data is
- permitted to accompany the Signal command. There may also be
- protocol-idiosyncratic parameters for the Signal command. If
- this is the case, these parameters would come before the data.
-
- Protocol-Idiosyncratic Parameters
-
- The parameters for the Signal command are protocol
- idiosyncratic. That is, each protocol off-loaded has a set of
- these parameters. The default value for these parameters is
- their previous values. Control flags for multiple
- protocol-idiosyncratic parameters must be defined for each
- off-loaded protocol.
-
- Responses
-
- The following responses have been identified for the Signal
- command:
-
- 000 Command completed successfully
- 201 Command not appropriate
- 300 Problem with multiple chunks
- 301 Syntax problem with Command
-
-
- Lilienkamp & Mandell & Padlipsky [Page 25]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 401 Protocol Interpreter in OPE not responding
- 402 Failure in remote protocol interpreter
- 403 Failed; insufficient protocol interpreter resources
- 501 Failed; insufficient OPE resources
- 601 Request violates security policy
-
- Additionally, protocol-idiosyncratic responses will be defined
- for each off-loaded protocol.
-
- Example of Signal Command
-
- The major perceived use for the Signal command when offloading
- a connection protocol is sending an out-of-band signal with no
- data. In such a case, the appropriate signal command would be:
-
- C SI <nl>
-
- Notes to the Implementor
-
- Some protocols may allow only only one outstanding signal at a
- time. For these protocols, it is an implementation issue
- whether the OPE will buffer several signals, but a good case
- could be made for the position that a scrupulous OPE would
- reflect a 202 response back to the Host in such cases.
-
- There is some question as to the proper handling of the
- "expedited data" notion of some (particularly ISO) protocols.
- It might be more appropriate to deal with such a thing as a
- protocol idiosyncratic parameter on the Transmit command
- instead of using the Signal command (even if it's the closest
- approximation to an out-of-band signal in the given protocol).
- If it's provided using the Signal command, the expedited data
- should not be passed as ASCII, and should appear after the
- command-terminating newline character (and appropriate padding
- with space characters).
-
- Status
-
- Purpose of Status Command
-
- The purpose of the Status command is to permit the Host to
- request and obtain status information from the OPE, and vice
- versa. This includes status request of a conventional protocol
- interface (e.g., in TCP, there is a request to determine the
- state of a particular connection).
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 26]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Parameters of the Status Command
-
- The parameters for the Status command indicate whether it is a
- request or a response, and contain the status information.
-
- Request/Report
-
- This parameter indicates whether the command is a Status
- request or a Status report. It consists of a single ASCII
- character. Q indicates a request (query), and R indicates a
- report. It should be noted that a report may be generated
- as the result of a query, or may be generated as the result
- of specific protocol mechanisms.
-
- Protocol-Idiosyncratic Parameters
-
- The parameters to the status command are
- protocol-idiosyncratic. That is, each protocol off-loaded has a
- set of these parameters. The default value for these
- parameters is their previous values. Among these parameters is
- an identifier of the type of status information contained or
- requested, and a value or set of values that contain the
- particular status information. The status information itself
- should be the last item in the command. The control flag for
- this set of parameters is -pi, which identifies the first
- protocol-idiosyncratic parameters. Control flags for other
- protocol-idiosyncratic parameters must be defined for each
- off-loaded protocol.
-
- Responses
-
- The following responses have been identified for the Status
- command:
-
- 000 Command completed successfully
- 201 Command not appropriate
- 300 Problem with multiple chunks
- 301 Syntax problem with Command
- 302 Inappropriate status request
- 303 Inappropriate status response
- 401 Protocol Interpreter in OPE not responding
- 402 Failure in remote protocol interpreter
- 403 Failed; insufficient protocol interpreter resources
- 501 Failed; insufficient OPE resources
- 601 Request violates security policy
- 9xx Protocol Idiosyncratic status responses
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 27]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Example of Status Command
-
- The status command can be particularly complex, depending on
- the protocol and particular type of status information. One
- possible use of the status command when off-loading TCP is to
- communicate the status service request. For performing this
- operation the status command would be:
-
- C ST Q <nl>
-
- Notes to the Implementor
-
- End
-
- Purpose of the End Command
-
- The purpose of the End command is to communicate that services
- of the off-loaded protocol are not required. The semantics of
- the End command depends upon whether it was issued by the Host
- or the OPE.
-
- - If the Host issues the End command, it means the process in
- the Host no longer requires the services of the offloaded
- protocol.
-
- - If the OPE issues the End command, it means the remote entity
- has no more data to send (e.g., the off-loaded protocol is TCP
- and the remote user has issued a TCP close).
-
- Parameters of the End Command
-
- One parameter is associated with the End Command. It indicates
- whether the termination should be "graceful" or "abrupt" (see
- below).
-
- Graceful/Abrupt
-
- The Graceful/Abrupt parameter indicates whether the End
- should be handled gracefully or abruptly. If it is handled
- gracefully, then data in transit is allowed to reach its
- destination before service is actually terminated. An
- abrupt End occurs immediately; all data transmitted from the
- Host but still pending in the OPE is discarded, and no new
- incoming data is sent to the Host from the OPE.
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 28]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- The parameter is indicated by a single ASCII character. The
- character "G" denotes graceful, and "A" denotes abrupt. The
- default value for this parameter is graceful.
-
- Responses
-
- The following responses have been identified for the End
- command:
-
- 000 Command completed successfully
- 201 Command not appropriate
- 300 Problem with multiple chunks
- 301 Syntax problem with Command
- 302 Illegal Type of End Command
- 401 Protocol Interpreter in OPE not responding
- 402 Failure in remote protocol interpreter
- 403 Failed; insufficient protocol interpreter resources
- 501 Failed; insufficient OPE resources
- 601 Request violates security policy
-
- Additionally, protocol idiosyncratic responses will be defined
- for each off-loaded protocol.
-
- Example of End Command
-
- The syntax of the End command is relatively straightforward. It
- consists of a chunk that contains only a chunk usage
- identifier, the end command string, and the parameter
- indicating whether the end should be graceful or abrupt. A
- possible valid (abrupt) End command would be:
-
- C EN A <nl>
-
- Notes to the Implementor
-
- Once an End has been issued in a given direction any other
- commands on the channel in the same direction are in error and
- should be responded to appropriately.
-
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 29]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- No-op
-
- Purpose of the No-op Command
-
- The No-op command performs no operation. Its purpose is to
- permit the Host and OPE to participate in a dialog which does
- not alter the state of communication activities, both for
- debugging purposes and to support features of certain protocols
- (e.g., Telnet's Are You There command).
-
- Parameters of the No-op Command
-
- There are no parameters associated with the No-op command.
-
- Responses
-
- There are only two possible legal responses to the No-op
- command. They are:
-
- 000 No-op Command Completed Correctly
- 300 Problem with multiple chunks
-
- Example of No-op Command
-
- Syntactically the No-op command is quite simple. It consists
- of a chunk that contains only the chunk usage identifier and
- the string for the command, and the newline. One possible
- valid No-op command is:
-
- C NO <nl>
-
- Notes to the Implementor
-
- No-ops are included for use in testing and initial
- synchronization. (The latter use is not mandatory, however.
- That is, no exchange of No-ops is required at start-up time,
- but it is conceivable that some implementations might want to
- do it just for exercise.) They are also traditional.
-
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 30]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- References
-
- (References [1]-[3] will be available in M. A. Padlipsky's "The
- Elements of Networking Style", Prentice Hall, 1985.)
-
- [1] Padlipsky, M. A., "The Host-Front End Protocol Approach",
- MTR-3996, Vol. III, MITRE Corp., 1980.
-
- [2] Padlipsky, M. A., "The Elements of Networking Style", M81-41,
- MITRE Corp., 1981.
-
- [3] Padlipsky, M. A., "A Perspective on the ARPANET Reference Model",
- M82-47, MITRE Corp., 1982.
-
- [4] Bailey, G., "Network Access Protocol", S-216,718, National
- Security Agency Central Security Service, 1982.
-
- [5] Day, J. D., G. R. Grossman, and R. H. Howe, "WWMCCS Host to Front
- End Protocol", 78012.C-INFE.14, Digital Technology Incorporated,
- 1979.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 31]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- APPENDIX
-
- Per-Protocol Offloading Descriptions
-
- 1. Command Level Interface to an Off-loaded TCP
-
- This appendix discusses the use of the commands described in the
- body of this document to provide an interface between a Host
- process and an off-loaded interpreter of the DoD's Transmission
- Control Protocol (TCP). The interface described here is
- functionally equivalent to the interface found in the MIL-STD 1778
- specification of TCP. It is not, however, identical, in that some
- features of the interface are particularly relevant only in an
- inboard implementation.
-
- The first section describes the mapping between the interface
- events of MIL-STD 1778 and the commands and responses of this
- H-FP, and highlights the unique features of the interface. The
- next sections discuss the details of each command. These details
- include the specialized usages of the command and the
- protocol-idiosyncratic parameters for that command.
-
- 1.1. Relation to MIL-STD 1778 Interface
-
- Most of the requests and responses of the TCP interface
- specified in MIL-STD 1778 are mapped directly to H-FP Commands
- and responses. The exceptions are noted in the following
- descriptions.
-
- 1.1.1. Requests
-
- Unspecified Passive Open, Fully Specified Passive Open,
- Active Open, and Active Open with Data requests are all
- implemented using variations of the Begin command. The
- distinction between Passive and Active Open is made using
- the Active/Passive parameter of Begin. The distinction
- between unspecified and fully specified lies in the presence
- or absence of the destination address fields. An active
- open with data is identical to a normal active open, except
- for the presence of data following the command.
-
- The Send Service Request is implemented using the Transmit
- command. Special protocol idiosyncratic parameters are
- provided for Urgent, Push, and changing the ULP timeout
- action and values. The response to the Transmit command
- indicates that the appropriate Send call has been made.
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 32]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- There is no corresponding response in the specified TCP
- interface; its only significance is that the Host can issue
- another Transmit command.
-
- The Allocate event is a specification feature of MIL-STD
- 1778 to indicate the willingness of the user to accept
- incoming data across the interface. However, because this
- is precisely the type of flow control provided by the
- Channel level, the Allocate event would be a superfluous
- mechanism. Thus, there is no direct analogy to that event
- in the H-FP interface. A Host process indicates its
- willingness to accept new data by informing the channel via
- its flow control interface (if it has an explicit one).
-
- Close and Abort are provided by the End command. Close uses
- the graceful version of the End command, while Abort uses
- the abrupt version. The response indicates that the End
- command has been received and the corresponding Close or
- Abort was issued. There is no corresponding response in the
- specified TCP interface.
-
- Status is provided by using the query form of the Status
- command. The response to the Status command contains the
- information (see below).
-
- 1.1.2. Responses
-
- The Open Id response is provided so that the user has a
- shorthand name by which to refer to the connection. With an
- outboarded TCP interpreter, there is a one-to-one mapping
- between TCP connections and H-FP channels. Hence, the Open
- Id event is not needed, since the channel ID is sufficient
- to indicate the desired connection.
-
- The Open Failure and Open Success responses are provided
- using OPE-generated responses to Begin commands (which
- provide the Active and Passive Service response primitives)
- issued by the Host. The value of the response code
- indicates whether the Begin command succeeded or failed, and
- can be mapped to the appropriate Open Failure or Open
- Success indication by the Host.
-
- Deliver is provided by having the OPE issue a Transmit
- command. As mentioned above, the "flow control" between the
- TCP interpreter and the Host is provided by the Channel
- layer, so no explicit interface events are needed. The
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 33]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- response to the Transmit command indicates the data was
- received by the Host process. There is no corresponding
- response in the specified TCP interface.
-
- The Closing and Terminate service responses are provided
- using the End command. Closing is indicated using the
- graceful version of the command, while terminate is provided
- using the abrupt version. The response indicates the End
- command was received by the Host process. There is no
- corresponding response in the specified TCP interface.
-
- Status Response is provided by a response to the query
- version of the Status command. The status information is
- communicated via protocol-idiosyncratic parameters following
- the Response code.
-
- Error messages are reported using the spontaneously
- generated version of the Status command issued by the OPE.
- The error message is provided in a parameter. The response
- indicates the error message was received by the Host
- process. There is no corresponding event in the specified
- TCP interface.
-
- 1.2. The Begin Command
-
- The Begin command is used in TCP in three major ways:
-
- 1. To inform the OPE that a process in the Host wishes to
- open a connection to a particular port on a internet
- address.
-
- 2. To inform the OPE that a process in the Host wishes to be
- informed when a connection attempt is made to any or to a
- specific port at this Host's internet address.
-
- 3. To inform the Host that a connection attempt to the OPE
- has arrived, and there was no Begin of the second type
- (passive open) issued by the Host relevant to that
- particular port.
-
- 1.2.1. Specialized Usage
-
- There are four major aspects to the specialized usage of the
- Begin command and its parameters. These parameters are:
-
- 1. The meaning of the Mediation Level parameter
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 34]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 2. The selection of blocking treatment of Transmit
- command
-
- 3. The meaning of the address components
-
- 4. The selection of the TCP Active Open with Data
- primitive.
-
- The Mediation Level parameter has only two possible values
- when offloading TCP. These are "9" and "0". The normal
- usage of an off-loaded TCP uses the value "9", which means
- the Host is in no way involved in the operation of TCP. The
- value "0" indicates the Host wishes to negotiate with the
- TCP options.
-
- The normal TCP Send event is non-blocking. That is, when a
- user issues the send command, it counts on the reliability
- services of TCP, and is not explicitly notified when the
- data has reached the other end of the connection and been
- properly acknowledged. Hence, the default value for this
- parameter with TCP is "N". There are some applications
- where the user may not wish to receive a response to a
- Transmit command until the data has been acknowledged by the
- other end of the connection. In these cases, the value "B"
- should be used for this parameter. If such a feature is not
- supported by the offloaded TCP interpreter, then it is
- acceptable to issue a 100 level Conditional acceptance
- indicating that blocking is not supported, but the Begin
- command will proceed using non-blocking Transmits.
-
- The primary address components of the local and remote
- addresses refer to the internet addresses of (or a symbolic
- Host name for) the respective Hosts. The secondary
- components refer to the particular sockets at those internet
- addresses. Normally, the secondary components (ports) are
- specified numerically. They may, however, be specified by
- name if the port is a well-known service port. In an Active
- Begin command, the remote addresses primary and secondary
- components must be specified. The local address components
- need not be specified, unless the user wishes to indicate
- that the connection should be from a particular port or a
- particular internet address of a multi-homed Host. In a
- Passive Begin command, the remote addresses are specified
- only if connection attempts from one particular Host are of
- interest. The local address secondary component must be
- used to indicate on which port to perform the Listen.
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 35]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- The way the TCP Active Open with data is provided is by
- including the data with the Begin Command. This data is
- included in the same Channel level chunk, immediately
- following the newline. If the data is more than a single
- chunk can hold, then the multi-chunk command feature of the
- H-FP must be used.
-
- 1.2.2. Protocol-Idiosyncratic Parameters
-
- The protocol-idiosyncratic parameter identified for the TCP
- interface is the "ULP timeout" information. This
- information includes whether the offloaded interpreter
- should abort the connection on a ULP timeout or report it to
- the inboard user, and also the numerical value of the
- timeout interval. The format chosen for this parameter is a
- single letter followed immediately (with no spaces) by an
- ASCII number. The letter can be either "R" or "A", and
- indicates that the ULP timeout should cause a report or an
- abort, respectively. The number is interpreted to be the
- timeout interval in seconds.
-
- 1.2.3. Examples of the Command
-
- An example of an Active Begin command that might be issued
- by an inboard user Telnet is:
-
- C BE TCP A ISIA 9 N 23 ,, 60 R 0 -pi R120 <nl>
-
- ISIA is the destination Host, 23 is the well-known port
- number for Telnet connections, a Begin timeout of 60 seconds
- was chosen. The desired type of service is to strive for
- good response time, the transmissions are expected to be in
- small units, and protocol-idiosyncratic parameter R120
- implies that a ULP timeout of 120 seconds should be
- reported.
-
- An example of a Passive Begin Command that might be issued
- by an inboard server Telnet is:
-
- C BE TCP P ,, 9 N ,, 23 ,, R 0 -pi R120 <nl>
-
- The major differences are that no remote address components
- are specified, and the local secondary address component is
- identified as the socket on which the Listen is being
- performed. Also, the default ("infinite") timeout is taken.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 36]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 1.3. The Transmit Command
-
- The Transmit command is used by the Host process to instruct
- the off-loaded TCP interpreter to send data to a remote site
- via the TCP connection associated with the command's channel.
- It is used by the OPE to deliver incoming data from the
- connection to the process in the Host.
-
- 1.3.1. Specialized Usage
-
- The Transmit command must be capable of providing all the
- specialized features of the Send and Deliver Event. These
- special features are Urgent, Push, and modification of the
- ULP Timeout action and/or interval.
-
- Urgent is a means to communicate that some point upcoming in
- the data stream has been marked as URGENT by the sender.
- While the actual Urgent bit travels through the connection
- out-of-band, it carries a pointer that is related to the
- sequence numbers of the in-band communication. Hence, the
- urgency must be indicated in the Transmit command rather
- than the Signal command.
-
- Push is a feature of the TCP Send Event that is used to
- indicate that the data in the Transmit command should be
- sent immediately (within the flow control constraints),
- rather than waiting for additional send commands or a
- timeout. Push is indicated in the Transmit Command. The
- push feature has the same meaning when sent from the OPE to
- the Host. If the Host implementation does no internal
- queuing, the flag has no meaning.
-
- The TCP Send event permits the user to modify the "ULP
- timeout action" and/or the "ULP timeout interval" associated
- with that connection. When changed, the new values take
- effect for the remainder of the connection, unless changed
- later with another Send. This feature is provided in this
- H-FP using the Transmit Command.
-
- 1.3.2. Protocol-Idiosyncratic Parameters
-
- The three features identified above are provided using
- protocol-idiosyncratic parameters.
-
- The first such parameter is the Urgent parameter. From the
- point of view of the interface, it is just a flag that
- indicates the data is urgent (the actual Urgent pointer is a
-
-
- Lilienkamp & Mandell & Padlipsky [Page 37]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- concern of the off-loaded TCP interpreter, which is keeping
- track of the sequence numbers). When issued by the Host
- process, the Urgent flag means the stream should be marked.
- When issued by the OPE, it means the receiver should go to
- (or remain in) the Urgent receive mode. If the flag is not
- set in the Transmit issued by the OPE, then the receiver
- should remain in (or return to) the non-urgent receive mode.
- The value of this protocol-idiosyncratic parameter is "U" if
- the Urgent is set, or "N" if it is not set. The default
- value for this parameter is "N". Since this parameter is
- the first protocol-idiosyncratic parameter for the Transmit
- command, it requires no special flag, and can be indicated
- using the flag -pi.
-
- The second protocol-idiosyncratic parameter is the Push
- flag. This parameter is only issued by the Host, since
- there is no Push in the TCP Deliver event. Its value is "P"
- for push, or "N" for normal. The default value of this
- parameter is "N". Its control flag is -pu.
-
- The third protocol-idiosyncratic parameter is the ULP
- timeout action and value parameter. The action part
- indicates whether the offloaded interpreter should abort the
- connection on a timeout or report it to the inboard user.
- The value part is the numerical value of the timeout
- interval. The format used for this parameter is the same as
- in the Begin command, which is a single letter followed
- immediately (with no spaces) by an ASCII number. The letter
- can be either "R" or "A", and indicates that the ULP timeout
- should cause a report or an abort, respectively. The number
- is interpreted to be the timeout interval in seconds. The
- default interpretation for this parameter is its previous
- value. The control flag for this parameter is -ul.
-
- 1.3.3. Examples of the Command
-
- An example of a Transmit command issued by a Host process is
-
- C TR -pi N P R160 <nl> <DATA>
-
- where <DATA> is the data contained within the chunk. This
- command is for a non-urgent but pushed TCP Send event, that
- also resets the timeout action and interval to Report with a
- value of 160 seconds. The response mode (i.e., nonblocking)
- is derived from the Begin command and not effected by
- transmit.
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 38]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- An example of a Transmit command issued by the OPE is
-
- C TR -pi N <nl> <DATA>
-
- where <DATA> is the data contained within the chunk. This
- command is for a non-urgent delivery (presumably, after a
- previous Urgent delivery).
-
- 1.4. The Condition Command
-
- The Condition command is used to modify the transmission
- characteristics of the connection. The parameters that make
- sense to modify with TCP are the Transmit Response discipline,
- the Type of Service, and the Flow Control Advice.
-
- 1.4.1. Specialized Usage
-
- There is no usage of the Condition command with an offloaded
- TCP interpreter that is particularly specialized.
-
- 1.4.2. Protocol-Idiosyncratic Parameters
-
- There are no protocol-idiosyncratic parameters for the
- condition command for the off-loaded TCP. It would be
- possible for the ULP timeout action values to be changed
- with a condition command. However, this is accomplished
- with the Transmit command, which more closely models the
- interface specified in MIL-STD 1778. We propose that the
- condition command not provide this capability.
-
- 1.4.3. Examples of the Command
-
- An example of the Condition command to change the flow
- control advice for a connection is
-
- C CO -fc 1 <nl>
-
- which indicates that relatively small transmission units are
- now expected.
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 39]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 1.5. The Signal Command
-
- As we currently understand it, TCP's URGENT feature provides an
- INband signal rather than a true out-of-band signal (and at
- least one of us deeply regrets this). The actual URGENT bit is
- sent out-of-band, but it contains an URGENT pointer which
- relates the URGENT to its position in the data stream. The
- actual semantics of the URGENT is left to the higher level
- protocol (e.g., Telnet says to discard all data up to the
- URGENT pointer). Since the Signal command is allowed to cross
- a pending Transmit in the H-FP channel, it would be potentially
- dangerous to implement the interface to TCP URGENT using the
- Signal command since the wrong sequence number could be used as
- the urgent pointer. Barring persuasive arguments to the
- contrary, it is proposed that Signal should not be used with
- TCP.
-
- 1.6. The Status Command
-
- The Status command maps directly into the TCP Status event when
- issued by a Host process. It is also used for the TCP error
- event when issued by the OPE. There is currently some question
- as to how information from lower protocol levels (e.g., ICMP
- error messages) should be reported to TCP users. When these
- issues are resolved, there may be other uses for the Status
- command. We solicit other ideas for the Status command with
- this report.
-
- 1.6.1. Specialized Usage
-
- The major specialized usage of the Status command is to
- provide the error reporting service. This usage is a form
- of the Status generated by the OPE.
-
- 1.6.2. Protocol-Idiosyncratic Parameters
-
- When used as a TCP Status request (command issued by the
- Host process), there are no protocol-idiosyncratic
- parameters associated with the Status command. The OPE
- response codes the TCP status.
-
- When used as a TCP error report (command issued by the OPE),
- there is one protocol-idiosyncratic parameter associated
- with the Status command. It is an error description in the
- form of a text string. It requires no special control flag
- since the flag -pi is unambiguous and there are no other
- protocol-idiosyncratic parameters.
-
-
- Lilienkamp & Mandell & Padlipsky [Page 40]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 1.6.3. Examples of the Command
-
- An example of the Status command issued by the Host process
- to request status information is
-
- C ST Q <nl>
-
- The status information is returned in the response to the
- status command.
-
- An example of the Status command issued by the OPE to report
- an error from the TCP interpreter is
-
- C ST R -pi "Connection already exists" <nl>
-
- which is issued when a TCP open (HFP Begin) is issued to an
- already opened (foreign) connection.
-
- 1.7. The End Command
-
- The End command is used to indicate that TCP services are no
- longer required. Thus, it can be mapped into either the TCP
- Graceful Close or the TCP Abort events. It is also used as the
- TCP Closing response (as contrasted with the response by the
- OPE to the close command), when issued by the OPE.
-
- 1.7.1. Specialized Usage
-
- Because of the nature of the two-way close provided by TCP,
- there is a possibility that the Host and the OPE wish to
- gracefully terminate the connection at the same instant. If
- this happens, then both the Host and the OPE would issue End
- commands at the same time. To be prepared for this, it is
- necessary to make this the normal graceful closing sequence.
- In other words, both the Graceful Close request and the
- Closing response are mapped to End commands, and the
- response to one of those commands only indicates that the
- command has been received and executed, but not that the
- connection is actually fully closed. The connection is
- gracefully closed when both End commands have been issued,
- and both successful responses have been received.
-
- With an abrupt end, a two-way exchange is not necessary.
- Only the Host or the OPE need issue it, for the connection
- to be aborted.
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 41]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 1.7.2. Protocol-Idiosyncratic Parameters
-
- There are no protocol-idiosyncratic parameters for the End
- command used with TCP.
-
- 1.7.3. Examples of the Command
-
- An example of the End command used to indicate either a TCP
- Close request (from the Host process) or TCP Closing
- response (from the OPE) is
-
- C EN G <nl>
-
- An example of the End command used as an Abort request (from
- the Host process) or as a Terminate response is
-
- C EN A <nl>
-
- 2. Command Level Interface to an Off-loaded Telnet
-
- This appendix is provided to discuss the use of the commands
- described in the body of this document to provide an interface
- between a Host process and an off-loaded interpreter of the Telnet
- protocol.
-
- The interface described here is not based on a formal interface.
- There are several reasons for this, including the lack of a widely
- accepted standard interface to Telnet, and its headerless nature.
- Consequently, the interface described here is very similar to the
- actual Telnet data stream.
-
- 2.1. The Begin Command
-
- The Begin command is used with Telnet to initiate Telnet
- connections.
-
- 2.1.1. Specialized Usage
-
- There are three major specialized usages to the Begin
- command. They are the meaning of the Mediation Level
- parameter, the way the number of incoming Telnet connections
- are supported, and the meaning of the secondary address
- components.
-
- The mediation level is used in Telnet to control which of
- the various Telnet activities are performed by the OPE, and
- which are controlled by the Host. It has been determined
-
-
- Lilienkamp & Mandell & Padlipsky [Page 42]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- that all monitoring of the Telnet Socket should be performed
- by the OPE. Mediation level 9, which is the default,
- indicates the Host desires to play no role in Telnet
- operation. Level 5 means that protocol-idiosyncratic
- parameters to this Begin command indicate which incoming
- options the Host wishes to handle; all other options, and
- all NVT translations, are to be performed by the OPE. Level
- 0 indicates that the Host will handle all options, while all
- NVT translations are to be performed in the OPE (see Section
- B.1.3).
-
- The Host can either accept the connections by fielding OPE
- generated Begins, or by issuing passive Begins to the OPE.
- The Host may wish to restrict the number of incoming Telnet
- connections that it will handle at any particular time. It
- can do this by rejecting OPE-generated Begins above a
- certain number, or by limiting the number of Host-issued
- passive Begins. However, precedence constraints dictate
- that the Host actually issue additional passive Begins or
- accept additional Begins from the OPE beyond the maximum
- number it is normally willing to support, so that
- high-priority service requests can be accommodated, possibly
- by preempting lower priority activities.
-
- The secondary address component is used to refer to specific
- ports. Normally, they are used only when the standard or
- default ports are not used, such as special purpose
- applications or testing.
-
- 2.1.2. Protocol-Idiosyncratic Parameters
-
- The protocol-idiosyncratic parameters to the Telnet Begin
- command are the identifiers for the options which the host
- wishes to negotiate when using mediation level 5. On other
- mediation levels, these parameters are not used.
-
- 2.1.3. Examples of the Command
-
- An example of a passive Begin for an outboard Telnet
- protocol is:
-
- C BE TEL P ,, 5 N -fc 0 -pi 9 <nl>
-
- Where the parameters are:
-
- TEL Code for the Telnet Protocol
- P Passive Begin
-
-
- Lilienkamp & Mandell & Padlipsky [Page 43]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- ,, Skip the Foreign Address Primary Component
- 5 Mediation Level is 5
- N Non Blocking Transmits
- -fc Skips over parameters up to Flow Control Advice
- S Small Blocks are appropriate for Telnet
- -pi Skips over parameters to the Protocol Idiosyncratic
- List of Options to be Handled by the Host.
- 9 Option Code for Line Length Option
-
- Here, no remote address component was specified, since the
- Host will accept connections from any Host. Similarly, no
- local addresses are specified, since the default well-known
- socket for this Host is to be used. In this example, the
- Host specifies it will handle the line length option (number
- 9). Other options are handled in the OPE.
-
- An example of an active Begin for an outboard Telnet
- protocol is:
-
- C BE TEL A ISIA 5 N -fc 0 -pi 9 <nl>
-
- This command is identical to the passive command, except
- that a remote primary address component is specified to
- identify the intended Host. No remote secondary component
- is specified, since the well-known socket at that Host is to
- be used. No local secondary address components are
- specified, since the connection can originate from any
- available socket of the appropriate type selected by the
- OPE.
-
- 2.2. The Transmit Command
-
- The Transmit Command is used to send data across a Telnet
- connection.
-
- 2.2.1. Specialized Usage
-
- The Transmit command is used to transmit data over the
- Telnet connection. There is one specialized aspect of the
- Transmit command used with an outboard Telnet interpreter.
- This is the provision of the Go Ahead feature of Telnet that
- supports half-duplex devices.
-
- Go Ahead is provided as a protocol idiosyncratic parameter
- to the Transmit. It is only used if the Host will support
- it, however. It is our opinion that Go Ahead is probably
- not a proper thing for the default case.
-
-
- Lilienkamp & Mandell & Padlipsky [Page 44]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- Go Aheads are a matter between the Host and the terminal. It
- is difficult to offload the generation of Go Aheads to the
- OPE, since the OPE is not really cognizant of the semantics
- of the communication between the Host and the terminal.
- Hence, the OPE does not know when the Host is done
- transmitting and willing to pass "the turn" back to the
- terminal. Similarly when the remote site relinquishes
- control, the OPE includes Go Ahead in its TR.
-
- We don't believe this Go Ahead problem to be an indictment
- against outboard processing. It merely illustrates that
- functionality not found in a Host cannot necessarily be
- provided by the OPE. Hence, we provide this note to the
- implementor: if the Host cannot generate the
- protocol-idiosyncratic Go Ahead parameter, then the DO
- Suppress Go Ahead must be issued immediately after the
- connection is established.
-
- 2.2.2. Protocol Idiosyncratic Parameters
-
- The protocol idiosyncratic parameter is the Go Ahead
- indicator. When present, the character "G" is used to mean
- the Go Ahead can be sent to the other end of the connection,
- but only after the data associated with that Transmit
- command is sent. When the character is any other value, or
- is absent, the Go Ahead should not be sent.
-
- 2.2.3. Examples of the Command
-
- An example of the Transmit command is:
-
- C TR -pi G <nl> <DATA>
-
- With this command, the Go Ahead is passed to the other side
- after the data is sent.
-
- 2.3. The Condition Command
-
- The Condition command is used with Telnet to modify the
- Transmission characteristics and to enable or disable Telnet
- options on a Telnet connection.
-
- 2.3.1. Specialized Usage
-
- The Condition command takes on specialized usage with
- Telnet, in addition to its normal usage. It is used to
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 45]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- control the option selection and negotiation process, when
- such selection is performed by the Host (currently, this is
- done at mediation levels 5 and 1, but not at level 9).
-
- A set of protocol-idiosyncratic parameters has been defined
- for this purpose. They are based heavily on the Telnet
- negotiation and subnegotiation mechanisms. For simple
- negotiations there are two parameters, a negotiation type
- (from the set {DO, DONT, WILL, WONT}) followed by the code
- (numeric) or name (symbolic) for the desired option. The
- codes for the options are identified below. A basic
- difference between the H-FP interface to Telnet and the
- internal Telnet protocol is that additional parameters are
- included with the request (DO or WILL). The Telnet protocol
- subnegotiation is used internally to communicate that
- information in the Telnet data stream. Option-specific,
- protocol-idiosyncratic parameters are used for these
- additional parameters.
-
- Both the Host and the OPE can issue these Condition
- commands. When issued by the Host, it means the user wishes
- to enable or disable a particular option. The OPE proceeds
- to issue the appropriate negotiation commands (i.e., IAC
- <DO> <code>) in the Telnet data stream. When the results of
- the option negotiation are available, a response is
- generated by the OPE. For the types DO and WILL, a 000
- Response indicates the appropriate acceptance (WILL or DO,
- respectively). A nonzero Response code may indicate
- negotiation failure or negotiation rejection (among other
- things). For the types DONT and WONT, a 000 Response
- indicates the option will be disabled. A negotiation
- rejection should not be expected in those cases.
-
- When the Condition command is issued by the OPE, it means
- the other end of the connection is negotiating a change.
- Here the response from the Host indicates the Host's desired
- action for the option negotiation. Again, valid requests to
- disable options (DONT and WONT requests) should always get a
- 000 Response.
-
- 2.3.2. Protocol-Idiosyncratic Parameters
-
- There are two protocol-idiosyncratic parameters for primary
- negotiation using the Condition command. These are the
- negotiation type and the option code. The negotiation type
- is one of the set of {DO, DONT, WILL, WONT}. The option
- code is a numeric value used to identify the particular
-
-
- Lilienkamp & Mandell & Padlipsky [Page 46]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- option being negotiated. The values for these codes are
- indicated here, but are identical to the codes used in the
- actual Telnet negotiation. The codes are:
-
- Option Name Option Code Short Name
-
- Transmit Binary 0 Binary
- Echo 1 Echo
- Suppress Go-Ahead 3 SuppressGA
- Approximate Message Size 4 NAMS
- Status 5 Status
- Timing Mark 6 TimingMark
- RCTE 7 RCTE
- Line Length 8 LineLength
- Page Size 9 PageSize
- Carriage Return Disp 10 CRDisp
- Horizontal Tabstops 11 HTabStops
- Horizontal Tab Disp 12 HTabDisp
- Formfeed Disposition 13 FFDisp
- Vertical Tabstops 14 VTabStops
- Vertical Tab Disposition 15 VTabDisp
- Linefeed Disposition 16 LFDisp
- Extended ASCII 17 ExASCII
- Logout 18 Logout
- Data Entry Terminal 20 DET
- Terminal Type 24 TermType
- Extended options list 255 ExOptions
-
- Options not listed here may of course be used. The code
- number should be the same as the option code used in Telnet
- negotiation.
-
- 2.3.2.1. Simple Options
-
- Options that do not require additional parameters use the
- simple negotiation mechanisms described briefly above and
- in greater detail in the Telnet documentation. No
- additional parameters are required. These options
- include the Transmit Binary, Echo, Suppress Go Ahead,
- Status, Timing Mark, and Logout options.
-
- 2.3.2.2. Approximate Message Size Option
-
- The Approximate Message Size option requires two
- parameters. The first indicates whether the approximate
- message size being negotiated applies to the local or the
- remote end of the connection. DS means the size applies
-
-
- Lilienkamp & Mandell & Padlipsky [Page 47]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- to the sender of the command (i.e., if the Host issues
- the command, DS means the local end of the connection;
- if issued by the OPE, DS means the remote end of the
- connection). DR means the size applies to the receiver
- of the command (i.e., if the Host issues the command, DR
- means the remote end; if issued by the OPE, DR means the
- local end of the connection). This convention is
- consistent with the Telnet subnegotiation mechanisms.
- The second character is an ASCII encoded numeric value,
- which is a character count of the message size.
-
- 2.3.3. Line Width and Page Size Options
-
- The Line Width and Page Size Options require two additional
- parameters. The first indicates whether the line width or
- page size being negotiated applies to the local or the
- remote end of the connection, and uses the DS and DR
- convention described above. The second parameter is an
- ASCII encoded numeric value, which is interpreted as follows
- (assuming the Condition command was issued by the Host):
-
- 0 The Host requests that it handle length or size
- considerations for the direction indicated by
- the first parameter.
-
- 1 to 253 The Host requests that the remote end handle
- the size or length considerations for the
- direction indicated by the first parameter, but
- suggests that the value indicated be used as
- the size or length.
-
- 254 The Host requests that the remote end handle
- the size or length considerations for the
- direction indicated by the first parameter, but
- suggests that the size or length be considered
- to be infinity.
-
- 255 The Host requests that the remote end handle
- the tabstop considerations, and suggests
- nothing about what the value should be.
-
- If the Condition command is issued by the OPE, then the
- roles of the Host and the remote end are reversed.
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 48]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 2.3.4. Tabstop Options
-
- The Horizontal and Vertical Tabstops options require two
- option specific parameters. The first is either DR or DS,
- as was described previously. The second is a list of one or
- more ASCII encoded numeric values separated by spaces which,
- assuming the Condition command is issued by the Host, are
- individually interpreted as:
-
- 0 The Host requests that it handle tabstops for
- the direction indicated by the first parameter.
-
- 1 to 250 The Host requests that the remote end handle
- the tabstop considerations for the direction
- indicated by the first parameter, but suggests
- that the value(s) indicated should be used as
- the tabstops.
-
- 255 The Host requests that the remote end handle
- the tabstop considerations for the direction
- indicated by the first parameter, and suggests
- nothing about what the value should be.
-
- If the Condition command is issued by the OPE, then the
- roles of the Host and the remote end are reversed.
-
- 2.3.5. Character Disposition Options
-
- The Carriage Return Disposition option, the Horizontal Tab
- Disposition option, the Formfeed Disposition option, the
- Vertical Tab Disposition option, and the Linefeed
- Disposition option are all considered character disposition
- options from the perspective of H-FP. Two option-specific
- parameters are required for the character disposition
- options. The first is the DR or DS code, which was
- described previously. The second is a single ASCII encoded
- numeric value, which is interpreted as (assuming that the
- Host issued the Condition command):
-
- 0 The Host requests that it handle the character
- disposition for this connection.
-
- 1 to 250 The Host suggests that the remote end handle
- the character disposition considerations, but
- suggests that the value indicated should be
- taken as the number of nulls which should be
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 49]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- inserted in the data stream following the
- particular format character being
- subnegotiated.
-
- 251 The Host suggests that the remote end handle
- the character disposition considerations, but
- recommends that it replace the character with
- some simplified character similar to but not
- identical with it (e.g., replace a tab with a
- space, or a formfeed with a newline).
-
- 252 The Host suggests that the remote end handle
- the character disposition considerations, but
- recommends that it discard the character.
-
- 253 The Host suggests that the remote end handle
- the character disposition, but recommends that
- the effect of the character be simulated using
- other characters such as spaces or linefeeds.
-
- 254 The Host suggests that the remote end handle
- the character disposition considerations, but
- recommends that it wait for additional data
- before sending more data.
-
- 255 The Host suggests that the remote end handle
- the tabstop considerations, and suggests
- nothing about what the value should be.
-
- Some of the codes between 251 and 254 are not used with some
- character disposition options. Refer to the ARPANET
- documentation for additional details.
-
- If the Condition command is issued by the OPE, then the
- roles of the Host and the remote end are reversed.
-
- 2.3.5.1. RCTE Option
-
- The Remote Controlled Transmission and Echoing option
- requires parameters to indicate the sets of break
- characters and transmit characters. There are two
- option-idiosyncratic parameters for RCTE. The first is a
- list of the character classes that make up the set of
- break characters, as defined in the RCTE documentation.
- The second is a list of character classes that make up
- the set of transmit characters, as defined in the RCTE
- documentation. Since the two classes are optional and
-
-
- Lilienkamp & Mandell & Padlipsky [Page 50]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- can be of arbitrary length, it is necessary to precede
- each list with a -bc (break characters) or -tc (transmit
- characters). The character classes are defined as
-
- 1 Upper Case Letters A through Z
- 2 Lower Case Letters a through z
- 3 Digits 0 through 9
- 4 Format effectors <BS> <CR> <LF> <FF> <HT> <VT>
- 5 Non-format control codes, plus <ESC> and <DEL>
- 6 Punctuation . , ; : ? !
- 7 Grouping { [ ( < > ) ] }
- 8 Misc ' ` " / \ % @ $ & + - * = ^ _ | ~
- 9 <space>
-
- 2.3.5.2. Extended Option List
-
- The Extended Option List option requires a parameter to
- carry the number of the option on the extended list.
- There is thus one option specific parameter to the
- Condition command when used for this purpose, which is
- the number of the option on the extended option list. It
- can be expressed in ASCII using an octal, decimal, or
- hexadecimal format.
-
- 2.3.5.3. Terminal Extension Options
-
- The Extended ASCII, SUPDUP, and Data Entry Terminal
- options of Telnet were all attempts to extend the basic
- capabilities of the Telnet data stream beyond the simple,
- scroll mode terminal model that was the basis of the
- original Telnet design.
-
- All of these options have limitations to their
- effectiveness. The Extended ASCII option lacks a
- standardized interpretation of the bit patterns into
- extended ASCII characters. The SUPDUP effort was
- actually an independent mode where a different virtual
- terminal protocol was used, and the option was there
- merely to switch to and from this protocol. The Data
- Entry Terminal option requires the excessive overhead of
- subnegotiation for each use of extended features. All of
- these options lack the more valuable asset of widespread
- implementation and use.
-
- The way these options should be handled is not detailed
- in this appendix. It is clear that the Condition command
- could be used for initiating and terminating the use of
-
-
- Lilienkamp & Mandell & Padlipsky [Page 51]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- these options. The actual transmission of characters
- related to the extended terminal features should be
- provided by the Transmit command, either as part of the
- normal Host-to-OPE data stream or by using
- protocol-idiosyncratic parameters.
-
- A more recent option, the Terminal Type option, should be
- mentioned here. It permits one end of a connection to
- request information about the terminal at the other end
- or send information about the terminal at the local end.
- This is convenient for systems that provide a wide
- variety of terminal support, but it clearly does not
- follow the model of reducing the MxN problem by use of a
- virtual terminal. Its use is very straightforward in the
- H-FP context. It only requires sending the terminal type
- to the other end, and activating the Binary Transmission
- Option.
-
- 2.3.5.4. Status Option
-
- The Status option is enabled using the negotiation
- mechanism of Telnet. However, the means to transfer
- status information between OPE and the Host is provided
- via the Status command. Therefore, details of status
- negotiation are irrelevant to the interface to the
- outboard Telnet.
-
- 2.3.6. Examples of the Command
-
- The following example shows the command issued by a Host to
- the OPE, requesting that the OPE negotiate with the other
- side so that remote echo is performed.
-
- C CO -pi DO 1 <nl>
-
- The numeral 1 is the option code for ECHO from the table
- above. All of the simple options listed above use this same
- basic format.
-
- The options with additional parameters use straightforward
- extensions of this syntax. For example, a possible usage of
- Condition by the Host to set the approximate message size
- is:
-
- C CO -pi DO 4 DS 1024
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 52]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- The 4 is the Option Code for the Approximate Message Size
- option, the DS indicates that Host's message size should be
- set, and 1024 is the desired size.
-
- 2.4. The Signal Command
-
- The Signal command is used with Telnet to provide the Telnet
- Interrupt Process and Abort Output services.
-
- 2.4.1. Specialized Usage
-
- The Signal command is used with an outboard Telnet
- interpreter to interface to the Telnet synch mechanism.
- This mechanism is used with a protocol-idiosyncratic
- parameter, which indicates what particular command is being
- "synched." It is expected that normally, this Signal
- mechanism will only be used with the Interrupt Process and
- Abort Output Telnet signals. When the Signal command is
- issued by the Host, it goes through the Channel
- (out-of-band) to the OPE, where the Telnet interpreter
- issues the corresponding Telnet signal and synch sequence.
- When such a sequence is received by the OPE, it immediately
- issues a Signal to the Host. It is expected that a Host or
- OPE would not, in general, reject the Signal command unless
- it is badly formed.
-
- 2.4.2. Protocol-Idiosyncratic Parameters
-
- The Telnet protocol-idiosyncratic parameter used with the
- Signal command identifies which Telnet signal is begin
- issued. Normally, it would have the value of either "IP" or
- "AO", for Interrupt Process or Abort Output. If absent, the
- default value is "IP".
-
- 2.4.3. Examples of the Command
-
- An example of a Telnet Signal Command (in this case, to send
- an Interrupt Process signal) is:
-
- C SI IP <nl>
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 53]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 2.5. The Status Command
-
- The Status command is used with Telnet to obtain information
- about the Telnet connection and the options in effect.
-
- 2.5.1. Specialized Usage
-
- The Status command has one specialized aspect when used to
- interface to an outboard Telnet interpreter. That is to
- send and receive the Telnet Protocol status request
- subnegotiation message to and from the data stream. In
- order to invoke the status command for this purpose,
- however, the user must have previously issued the Condition
- Status command, which causes the ability to request status
- to be negotiated. The OPE, when it receives a valid Status
- request command, immediately responds to the user indicating
- the status. The OPE can issue a status to request the
- Host's negotiated positions.
-
- 2.5.2. Protocol-Idiosyncratic Parameters
-
- There are no protocol-idiosyncratic parameters to the Status
- query command. The Status Response command has a single
- protocol-idiosyncratic parameter. It is an ASCII string
- containing the status of the various options (not at their
- default values).
-
- 2.5.3. Examples of the Command
-
- An example of a Status Query command is:
-
- C ST Q
-
- An example of a Status Response command is:
-
- F ST R "WILL ECHO DO SUPPRESS-GO-AHEAD
- L WILL STATUS DO STATUS" <nl>
-
- In the previous example, note the opening quote is in the
- first chunk, and the closing quote is in the last chunk.
- This technique permits parameters to span chunk boundaries.
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 54]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 2.6. The End Command
-
- The End command is used to terminate the Telnet connection,
- either gracefully or abruptly.
-
- 2.6.1. Specialized Usage
-
- The graceful termination of a Telnet requires End commands
- to be issued by both the Host and the OPE. This specialized
- usage is identical to that of the outboard TCP interface,
- however.
-
- 2.6.2. Examples of the Command
-
- An example of the graceful End command is:
-
- C EN G <nl>
-
- The abrupt End command is similar.
-
- 2.7. The No-op Command
-
- The No-op command is used with Telnet so the Host can determine
- if the OPE is active, and vice versa.
-
- 2.7.1. Specialized Usage
-
- The No-op command has one specialized usage when offloading
- Telnet. This is to provide the Telnet Are You There (AYT)
- feature. When an (AYT) message is received by the OPE, it
- issues a No-op command to the Host. Upon receiving the
- response from the Host, the appropriate response is sent
- back in the data stream.
-
- 2.7.2. Protocol Idiosyncratic Parameters
-
- There are no protocol-idiosyncratic parameters to the No-op
- command.
-
- 2.7.3. Examples of the Command
-
- An example of the No-op command is:
-
- C NO <nl>
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 55]
-
-
-
- RFC 929 December 1984
- Proposed Host-Front End Protocol
-
-
- 3. FTP Offloading
-
- TBS
-
- 4. Mail Offloading
-
- TBS
-
- 5. Whatever Offloading
-
- TBS
-
- Where TBS nominally = To Be Supplied, but really means: We'll argue
- through these once we get sufficiently positive feedback on the
- others (and on the H-FP as a whole).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Lilienkamp & Mandell & Padlipsky [Page 56]
-
-